#ifndef CSE220_project3_common_h
#define CSE220_project3_common_h

#define FORM_FEED_CHAR          '\f'

#define MAX_FILE_NAME_LENGTH    32
#define MAX_SOURCE_LINE_LENGTH  256
#define MAX_PRINT_LINE_LENGTH   80
#define MAX_LINES_PER_PAGE      50
#define DATE_STRING_LENGTH      26
#define MAX_TOKEN_STRING_LENGTH MAX_SOURCE_LINE_LENGTH
#define MAX_CODE_BUFFER_SIZE    4096

#define EOF_CHAR                '\x7f'
#define TAB_SIZE                8

#define MAX_INTEGER             32767
#define MAX_DIGIT_COUNT         20
#define MAX_EXPONENT            37

#define MIN_RESERVED_WORD_LENGTH    2
#define MAX_RESERVED_WORD_LENGTH    9

typedef enum
{
    LETTER, DIGIT, QUOTE, SPECIAL, EOF_CODE,
}
CharCode;

typedef enum 
{
    INTEGER_LIT, REAL_LIT, STRING_LIT,
}
LiteralType;

#endif
